#ifndef TYPES_H_
#define TYPES_H_

#include <string>

/* Convenience types.  */
typedef unsigned char u_char;
typedef unsigned char u_int8;
typedef unsigned short u_int16;
typedef unsigned int u_int32;

#ifdef WIN32
	#ifndef _WINSOCK2API_
		typedef unsigned __int64 u_int64;
	#endif
#else
	typedef unsigned long long u_int64;
#endif

typedef signed char int8;
typedef signed short int16;
typedef signed int int32;
#ifdef WIN32
	typedef signed __int64 int64;
#else
	typedef signed long long int64;
#endif

typedef std::string sstring;

#ifndef __LITTLE_ENDIAN
#define __LITTLE_ENDIAN 1
#endif

#ifndef __BIG_ENDIAN
#define __BIG_ENDIAN 2
#endif

#ifndef __BYTE_ORDER
#define __BYTE_ORDER __LITTLE_ENDIAN
#endif

#define MAC_STR_LEN 64
#define MAC_LEN 6
#define IP_LEN 4

#endif /* TYPES_H_ */
